import axios from 'axios';

// 创建axios实例
const api = axios.create({
  baseURL: '/api',  // 使用相对路径，会被代理到目标服务器
  withCredentials: true, // 允许携带Cookie
  headers: {
    'Content-Type': 'application/json',
  },
  timeout: 5000, // 请求超时时间
});

/**
 * 登录API
 * @param {Object} data - 登录数据
 * @param {string} data.username - 用户名/邮箱/手机号
 * @param {string} data.password - 密码
 * @returns {Promise}
 */
export const login = async (data) => {
  // 根据环境变量决定是否使用Mock数据
  const useMock = import.meta.env.VITE_USE_MOCK === 'true';

  if (useMock) {
    // 使用Mock数据
    const { mockLogin } = await import('../mock/login.js');
    return mockLogin(data);
  } else {
    // 使用真实后台API
    try {
      const response = await api.post('/auth/login', data);
      return response.data;
    } catch (error) {
      console.error('登录请求出错:', error);
      // 处理错误信息
      if (error.response) {
        // 服务器返回了错误状态码
        const errorMessage = error.response.data.message || `登录失败: ${error.response.statusText}`;
        throw new Error(errorMessage);
      } else if (error.request) {
        // 请求已发送但未收到响应
        throw new Error('登录失败: 服务器无响应，请检查网络连接');
      } else {
        // 设置请求时发生错误
        throw new Error(`登录失败: ${error.message}`);
      }
    }
  }
};
